package com.dhcc.sds.busi.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.plugins.Page;
import com.dhcc.core.framework.base.service.IBaseService;
import com.dhcc.sds.base.entity.SdsQcentityEntity;
import com.dhcc.sds.busi.entity.SdsQcincaseOperlogEntity;
import com.dhcc.sds.busi.vo.AnalysisSdsPortalVo;
import com.dhcc.sds.busi.vo.SdsOPQcincaseVo;

/**
 * 病例操作日志表数据服务层接口
 * 
 * @ClassName: ISdsQcincaseOperlogService
 * @Description: TODO
 * @author sunyingjie
 * @date 2021-03-22 10:09:14
 */
public interface ISdsQcincaseOperlogService  extends IBaseService<SdsQcincaseOperlogEntity> {
	
    List<SdsQcincaseOperlogEntity> page(Page<SdsQcincaseOperlogEntity> page,Map<String, Object> map);
    List<SdsQcincaseOperlogEntity> list(Map<String, Object> map);

    List<Integer> selectPortalCount(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectMainChartData(DateTime nowDate, DateTime lastYearDate, Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectQCSumChartData(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectLocSumChartData(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectDocSumChartData(Map<String, Object> params);

    List<SdsQcincaseOperlogEntity> selectUseTime(Long caseId, List<String> status);

    List<AnalysisSdsPortalVo> selectPortalCountDetails(String idName, List<String> deptIds);

    List<AnalysisSdsPortalVo> selectByCondition(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectPortalCountDetailsList(String idName, List<String> deptIds);

    List<AnalysisSdsPortalVo> selectByConditionList(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectQCSumChartDataList(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectLocSumChartDataList(Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectDocSumChartDataList(Map<String, Object> params);

    List<Long> selectIncaseIdsByCondition(Map<String, Object> params);

    String getInGroupOrOutOperReason(Long inCaseId, String state);

    List<SdsOPQcincaseVo> selectOPIncaseByCondition(Map<String, Object> params);

    SdsQcincaseOperlogEntity selectLastOne(Long mrId, String state);
}
